In business and engineering environments, as well as in other fields, data pertaining to the development and administration of projects can be voluminous and difficult to manage. Typical projects and endeavors can involve many different development stages that having many different facets. For example, the development project of a particular product can include the parallel development of different components of the product by different teams. Additionally, different aspects of a project can proceed independently and/or simultaneously. Even with respect to the ongoing efforts of individual aspects of a project, there can be multiple stages, milestones, revisions, etc. Thus, controlling and/or managing such projects can be cumbersome.
Data pertaining to different developmental aspects and phases can be recorded and maintained as a collection of data records that include, for example, data that describe tasks that are to be completed (or that have already been completed), data about product components, managerial structures and/or any other data that is germane to the project. Such data records can be viewed as objects. Data relating to particular objects changes over time, and it often becomes necessary to record the changed data while still preserving the original data record. A change to object data can be viewed as a new state of the object, with the collection of states reflecting some historical evolution with respect to the object. The sum total of the available data (e.g., the various states of objects) is subsequently processed to enable, for example, an evaluation of the different object states to extract useful information, such as the status of the project at some point (or points) in time (e.g., what parts of the project will be completed).